package com.mall.common.service;

import java.util.List;

import com.mall.common.domain.AreaDomain;

import net.sf.json.JSONObject;

public interface AreaService extends BaseService<AreaDomain, Long> {
	
	/**
	 * 获取所有顶级地区集合;
	 * 
	 * @return 所有顶级地区集合
	 * 
	 */
	public List<AreaDomain> getRootAreaList();
	
	/**
	 * 根据Area对象获取所有上级地区集合，若无上级地区则返回null;
	 * 
	 * @return 上级地区集合
	 * 
	 */
	public List<AreaDomain> getParentAreaList(AreaDomain area);
	
	/**
	 * 根据Area对象获取所有子类集合，若无子类则返回null;
	 * 
	 * @return 子类集合
	 * 
	 */
	public List<AreaDomain> getChildrenAreaList(AreaDomain area);

	/**
	 * 根据地区名称及父类ID查询在其子类中是否唯一(parentId为null则查询根地区是否唯一)
	 * 
	 * @param id
	 *            父类ID
	 * 
	 */
	public Boolean isNameUnique(Long parentId, String oldName, String newName);
	
	public JSONObject getAreaByPath(Long parentId);

}